/**
 * Sep 17, 2013 4:43:50 PM
 * com.kratonsolution.belian.kernel.dao
 * Dao.java
 */
package com.kratonsolution.belian.kernel.dao;

import java.util.List;
import java.util.Map;

import com.kratonsolution.belian.kernel.dm.Model;

/**
 * @author Agung Dodi Perdana
 * @email agung.dodi.perdana@gmail.com
 * @Version Sinch 0.0.1
 */
public interface Dao<T extends Model>
{
    public T store(T model);
    
    public T load(String id);
    
    public T update(T model);
    
    public T remove(T model);
    
    public List<T> loads();
    
    public List<T> loads(Map<String,Object> param);
    
    public long count();
    public long count(Map<String,Object> param);
}
